Runtime Constraint Checking Approaches for OCL, A Critical Comparison

نویسندگان

  • Carmen Avila
  • Amritam Sarcar
  • Yoonsik Cheon
  • Cesar Yeep
چکیده

There are many benefits of checking design constraints at runtime—for example, automatic detection of design drift or corrosion. However, there is no comparative analysis of different approaches although such an analysis could provide a sound basis for determining the appropriateness of one approach over the others. In this paper we conduct a comparative analysis and evaluation of different constraint checking approaches possible for the Object Constraint Language (OCL). We compare several approaches including (1) direct translation to implementation languages, (2) use of executable assertion languages, and (3) use of aspect-oriented programming languages. Our comparison includes both quantitative metrics such as runtime performance and qualitative metrics such as maintainability of constraint checking code. We found that the implementation language-based approaches perform better in terms of memory footprint and runtime overheads but the other approaches are more appealing in terms of maintainability. Keywords-pre and postconditions; runtime constraint checking; AspectJ; JML; OCL

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Checking Design Constraints at Run-time Using OCL and AspectJ

Design decisions and constraints of a software system can be specified precisely using a formal notation such as the Object Constraint Language (OCL). However, they are not executable, and assuring the conformance of an implementation to its design is hard. The inability of expressing design constraints in an implementation and checking them at runtime invites, among others, the problem of desi...

متن کامل

A Library-Based Approach to Translating OCL Constraints to JML Assertions for Runtime Checking

OCL is a formal notation to specify constraints on UML models that cannot otherwise be expressed by diagrammatic notations such as class diagrams. Using OCL one can document detailed design decisions and choices along with the behavior, e.g., class invariants and method pre and postconditions. However, OCL constraints cannot be directly executed and checked at runtime by an implementation, thus...

متن کامل

Checking OCL Constraints in Distributed Systems using J2EE/EJB

We present a pragmatic approach using formal methods to increase the quality of distributed component based systems: Based on UML class diagrams annotated with OCL constraints, code for runtime checking of components in J2EE/EJB is automatically generated. Thus, a UML–model for a component can be used in a black–box test for the component. Further we introduce different design patterns for EJBs...

متن کامل

Testing Distributed Component Based Systems Using UML/OCL

We present a pragmatic approach using formal methods to increase the quality of distributed component based systems: Based on UML class diagrams annotated with OCL constraints, code for runtime checking of components in J2EE/EJB is automatically generated. Thus, a UML–model for a component can be used in a black–box test for the component. Further we introduce different design patterns for EJBs...

متن کامل

New Type Checking Rules for OCL (Collection) Expressions

The Object Constraint Language OCL is an integral part of UML, the Unified Modeling Language standard. It has been added to Rational’s UML core as a logic-based sublanguage for the definition of integrity constraints (invariants) on class diagrams as well as for the definition of preand postconditions of operations. Despite of the fact that OCL is called a statically typed language its type che...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010